Data buses are found in virtually all computers and computer-based products, serving to interconnect a computer's central processing unit to RAM, for example, or to enable communications between a microprocessor and an application-specific integrated circuit (ASIC), and/or to peripheral devices such as an intelligent battery or a display. Some of these data buses are single wire buses. Today, single wire buses that support communication between multiple devices use a wired-or technique. Typically, the bus is held high by a pull-up resistor or other current source. When a device wishes to use the bus for communication, the bus is actually driven low. Single wire buses are usually used to either transfer data between devices or send a clock signal. One limitation of these buses is that devices on a single wire bus do not obtain power from the bus while using the bus for communication.
Low-cost, battery-powered products such as cellular phones or handheld computers typically employ a one-wire data bus, with all bus communications conducted at a single, fixed bus speed. One such bus, produced by Dallas Semiconductor Corp. of Dallas, Tex. and described in the product data sheets for their DS1820 “1-WIRE” Digital Thermometer (DS1820 data sheet, pp. 9, 16–19, and 24–26 (Mar. 5, 1998)), is a one-wire data bus that is held at a logic “high” with a pull-up resistor when idle, and is actively pulled-down to a logic “low” state with a current source. As a result, the bus consumes power when conveying a logic “low” state or when switching, which may be undesirable in battery-powered products. The bus also operates at a fixed speed, dictated by the bus' AC Electrical Characteristics table (DS1820 Data Sheets, p. 25). Devices that are incapable of operating at the specified speed will not communicate properly over the bus.
Another one-wire data bus is produced by Benchmarq Microelectronics, Inc. of Dallas, Tex. and is described in the data sheet for their bq2018 “POWER MINDER” IC (bq2018 data sheet, pp. 6 and 10–13 (September 1997)). This bus also has a dictated, fixed speed, with no method of changing bus speed to accommodate a variety of device communication speeds or a changing configuration of devices, greatly limiting the variety of devices that can be connected to the bus.
The communication speed capabilities of devices designed to communicate over a data bus vary widely. It is also often desirable to alter the configuration of the devices connected to a data bus. Neither of these factors are satisfactorily accommodated by the fixed speed one-wire data buses presently available.
Although there are a number of single wire buses, each have one or more limitations when being used to communicate with low-end devices such as batteries. Thus, a need exists for a single wire bus that overcomes the limitations of the prior art buses. Also, there is a need for a bus negotiation scheme that is operable over a one-wire data bus, which automatically adjusts the bus speed to accommodate the communication capabilities of all the devices coupled to the bus at any one time.